import {
  reactive/** ←可以把一个对象变成响应式的*/
  , effect /** ←effect里使用的变量如果发生变化,这个effect会默认重新执行*/
  , computed /** ←计算属性*/
  , ref /** ←*/

  //watchEffect 基于effect, 使用了批量更新策略
} from './reactivity';

const state = reactive({name: 'ahhh', age: 123, arr:[1,2,3]});

/*let myAge = computed({
  get() {
  },
  set() {
  }
});*/

//↓ 默认不会执行 直到主动调用计算属性
let myAge = computed(() => {
  console.log('ok'); //←← 多次取值 只会走一次 计算属性有缓存
  return state.age * 2;
});

effect(() => {
  console.log('myAge.value:',myAge.value);
});

// 多次取值 取的是缓存(只要依赖没有变化)
console.log(myAge.value);
console.log(myAge.value);

state.age = 200; // 控制台打印 →→→ myAge.value: 400
